home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-20
/
rs0422.zip
/
ROSEZSW
/
RZSW.AS
< prev
next >
Wrap
Text File
|
1991-04-22
|
5KB
|
187 lines
psect data
global _node_addr, _l2_user_info, _l2_info, Copyright
global _L3CALL,_L3DIGI, _L3PORT, _L3_MAXVC, _L3_WI, _L3DELAY
global _L3CSIZ, _L3NSIZ, _NPAroute, _userport
global _l2parms, _dl2parms, _l3parms, _dl3parms
global _USER_MAXVC, _USER_L3_W, _RTable
global _sumchk, __Lbssck, mycall, mydigi, myaddr
global _NULLFCN, _clr_boot, _con_boot, _recv_boot
global _rst_boot, _send_boot, _loader
global _complete, _being_set
global _Entry, _entry
global _passlen, _passwd
initdta:
myaddr: defb 10,31h,00h,00h,00h,00h,00h ;node address
defw _l2_info ;dummies message
defw l2parms ;l2 user config
defw l3parms ;l3 link config
defw 4 ;L3 user pkt window
defw 5 ;L3 user max vc cnt
defw 15 ;_L3CSIZ, no L3 users
initlen equ $-initdta
Copyright: defm '(C) 1988-90 W2VY'
_l2_info: defw 0,0,l2rdta,l2wdta,l2eob
l2rdta: defm 'ROSE X.25 Packet Switch Version 910422 by Thomas A. Moulton, W2VY'
l2eob: defb 0dh
l2wdta: defm 'See READZSW.ME in RZSW1111.ZIP !!!!' ;35 Bytes
defb 0dh,0,0,0,0,0,0 ;7 Bytes
defb 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;18 Bytes = 60 Bytes
_complete: defm 'Call Completed to ' ;40 bytes for each message
defb 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
_being_set: defm 'Call being Setup\r'
defb 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
AXALEN equ 7
nnodes equ 1 ;1 nodes in default config
nusers equ 0 ; No Level 3 users in default config
maxl3 equ 24 ; My Calls + 15 Node Paths + 8 Users
GLOBAL _maxl3dev
_maxl3dev: defw maxl3 ;Tell rest of world how big it is
mycall: defb 0a4h,9eh,0a6h,08ah,040h,40h,66h ;ROSE-3
mydigi: defb 0a4h,9eh,0a6h,08ah,040h,40h,64h ;ROSE-2
myport: defb 0
mydelay: defw 0 ;900 =15 Mins before retry network link
myvc: defb 20 ;network links can have 20 vc's default
mywi: defb 4 ;default window of 4
spfcn: defw 1,_loader
defpwd: defb 0,0 ;40 Bytes for KEY
defm 'ROSEISBESTABCDEFGHIJKLMNOPQRSTUVWXYZW2VY'
initab: defw FLAG2-BSSCK-1,BSSCK+1,BSSCK ;Length, Dest, Src
defw initlen,initbss,initdta
defw 7*nnodes,_L3CALL,mycall
defw 7*nnodes,_L3DIGI,mydigi
defw nnodes,_L3PORT,myport
defw nnodes,_L3_MAXVC,myvc
defw nnodes,_L3_WI,mywi
defw nnodes*2,_L3DELAY,mydelay
defw 12,l2parms,_dl2parms ;init l2 parms ram table
defw 12,l3parms,_dl3parms ;init l3 parms ram table
defw 42,_passlen,defpwd
initwm: defw 4,_maxfcn, spfcn ;Application loader
defw 10,_L2PARS,_dL2PARS ;Hooks for Level 2 User Switching
defw 10,_L3PARS,_dL3PARS ;Hooks for Level 3 Switching
defw 8,_ifaces,_difaces ;Level 1 to Level 2 Hooks 4 ports
defw 10,_entry,_Entry ;Message for Loader
defw 0
psect text
global __init
__init:
ld a,(FLAG1) ;check flags
cp 0aah
jp nz,1f
ld a,(FLAG2)
cp 0aah
jp nz,1f
call sumchk ;compute the checksum (xor of bytes)
ld b,a
ld a,(BSSCK)
cp b
jp nz,1f
ld hl,_l2_info
ld (_l2_user_info),hl ;Only the default message is in rom
ld hl,initwm ;Warm Start init's
jp initlp
1: xor a ;Clear A
ld (BSSCK),a ;IPAGE and MEMSIZ are set elsewhere
;
ld hl,initab ;start of init table
initlp: ld c,(hl)
inc hl
ld b,(hl)
inc hl
ld a,b
or c ;done yet?
jp z,initeof ;yes, get out!
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld a,(hl)
inc hl
push hl
ld h,(hl)
ld l,a
ldir
pop hl
inc hl
jp initlp
initeof:
ld a,0aah
ld (FLAG1),a
ld (FLAG2),a
; Now set the checksum value for next time.
_sumchk:
call sumchk
ld (BSSCK),a
ret
sumchk:
ld hl,FLAG1
ld bc,FLAG2-FLAG1
ld a,(hl)
inc hl
push hl
pop de ;source and dest same, the LD is a nop
1: xor (hl)
ldi
ret po ;until BC = 0
jp 1b
psect bssck ;bss with checksum protection
global IPAGE, _MEMSIZ, _HEAPUSD, _HEAPSIZ, _COLD
IPAGE: DEFS 256 ;Interrupt pointer table (HDWINT.AS)
_MEMSIZ: DEFS 2 ;Size of Dynamic RAM (BOOT.AS)
_COLD: defs 1 ;Reason for Restart (BOOT.AS)
BSSCK: defs 1
FLAG1: defs 1
l2parms: defs 12
l3parms: defs 12
initbss:
_node_addr: defs AXALEN
_l2_user_info: defs 2
_l2parms: defs 2
_l3parms: defs 2
_USER_L3_W: defs 2
_USER_MAXVC: defs 2
_L3CSIZ: defs 2
_L3CALL: defs AXALEN*maxl3 ;7 * 18 - 16 Nodes and 8 Users (bbs?)
_L3DIGI: defs AXALEN*maxl3
_L3PORT: defs 2*maxl3
_L3_WI: defs 2*maxl3
_L3_MAXVC: defs maxl3
_L3DELAY: defs 2*16 ;2 * 16 Nodes only
_L3NSIZ: defs 2
_NPAroute: defs 256 ;16 * 16 Alternatives in routing list
_userport: defs 2 ;Port number for out-bound User connect requests
_RTable: defs 2048 ;2K Max Routing Table for the WORLD!
_passlen: defs 1
_passwd: defs 256
FLAG2: defs 1
psect bss
global _Init_bss, _SAVE, _SAVEA, _taskq, _timerq, _spcfcn, _maxfcn
global _ifaces, _L2PARS, _L3PARS, _difaces, _dL2PARS, _dL3PARS
_Init_bss:
_HEAPUSD: defs 2
_HEAPSIZ: defs 2
_taskq: defs 2
_timerq: defs 2
_ifaces: defs 8 ;4 pointers (2 bytes each)
_L2PARS: defs 10 ;5 pointers (2 bytes each)
_L3PARS: defs 10 ;5 pointers (2 bytes each)
_SAVE: defs 2
_SAVEA: defs 16
_maxfcn: defs 2
_spcfcn: defs 32 ; 16 - 2 byte entries
end